import { getDefaultNobodyRole, getDefaultLoginedRole, getDefaultAdminRole } from "./roles";
import { getDefaultCorporate, getEnityOwner } from "./corporate_entities";
import { cachePut } from "../cache";

export async function check(){
    //开始启动系统
    //启动默认角色，默认角色不可删除]
    const nobody = await getDefaultNobodyRole(null);
    const logined = await getDefaultLoginedRole(null);
    const owner = await getDefaultAdminRole(null);
    //生成系统管理员
    //系统必须要一个不可删除的默认企业，且有默认角色和系统管理员
    const entity = await getDefaultCorporate();
    //检查以上项目才为一个合法系统
    if(!nobody){
        return false;
    }
    if(!logined){
        return false;
    }
    if(!owner){
        return false;
    }
    if(!entity){
        return false;
    }
    //检查默认系统管理员
    const sysOwner = await getEnityOwner(null);
    
    const entityOwner = await getEnityOwner(entity.id);

    try {
        //在路由中间件可以去对缓存判断是否需要进一步设置，并且跳转相应的页面
        await cachePut("isSysOwnerExist", false);
        await cachePut("isDefaultEntityOwnerExist", false);

        if(sysOwner.length!==0){
            await cachePut("isSysOwnerExist", true);
        }
        if(entityOwner.length!==0){
            await cachePut("isDefaultEntityOwnerExist", true);
        }

    } catch (error) {
        console.error(error);
        return false;
    }

    return true;
    


}

export function setSuperAdmin(username, password){

}